package com.vict.util;

import com.alibaba.fastjson.JSONObject;

import java.util.Optional;

public class JSONUtil {
    public static String jsonFieldSet(String sourceJsonStr, String key, Object value){
        JSONObject json = Optional.ofNullable(sourceJsonStr).filter(o -> o.startsWith("{")).filter(o -> o.endsWith("}"))
                .map(o -> JSONObject.parseObject(o)).orElseGet(() -> new JSONObject());
        if(value == null){
            json.remove(key);
        }else{
            json.put(key, value);
        }
        return json.toJSONString();
    }

    public static <T> T  jsonFieldGet(String sourceJsonStr, String key, Class<T> clazz){
        JSONObject json = Optional.ofNullable(sourceJsonStr).filter(o -> o.startsWith("{")).filter(o -> o.endsWith("}"))
                .map(o -> JSONObject.parseObject(o)).orElseGet(() -> new JSONObject());
        T t = json.getObject(key, clazz);
        return t;
    }

}
